package cn.spark.study.core

import org.apache.spark.SparkConf
import org.apache.spark.SparkContext
/*
 * 二次排序：
 * 1. 自定义排序 Key 继承 Ordered[T] 和 Serializable 实现 compare 方法    SecondSortKey
 * 2. 将文本映射为 key 为SecondSortKey value为line的 PairRDD
 * 3. 对 PairRDD按照自定义的SecondSortKey 排序
 * 4. 在次映射 去掉 SecondSortKey 只保留文本行
 */
object SecondSort {
  def main(args: Array[String]): Unit = {
    val sc = new SparkContext(new SparkConf().setAppName("SecondSort").setMaster("local"))
    
    sc.textFile("C://Users//e20160504//Desktop//sort.txt", 1)
    .map { line => (new SecondSortKey(line.split(" ")(0).toInt,line.split(" ")(1).toInt),line) }.sortByKey()
    .map(line => line._2).foreach { println }
  }
}